﻿Public Class frmCadastroTrabalhador
    Private idExperienciaProfissional As Integer

    Private idTrabalhador As Integer
    Private trab As New _Trabalhador
    Private esc As New _Escolaridade
    Private curso As New _cursoEspecializacao
    Private cursoTrab As New _cursoTrabalhador
    Private CargoExperiencia As New _cargoFuncao
    Private exp As New _experienciaProfissional
    Private ArquivoImagem As String


    Private frmConstrabalhador As New frmConsultaTrabalhador

    Private ModoJanela As String

    Public Sub New()
        '  ModoJanela = pModo
        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

    End Sub

    Private Sub setTrabalhador()

        trab.idEscolaridade = cmdEscolaridade.SelectedValue
        trab.nmCompleto = txtNomeTrabalhador.Text
        trab.edCompleto = txtEnderecoCompleto.Text
        trab.edBairro = txtBairro.Text
        trab.nuCPF = txtCPF.Text
        trab.nuRG = txtRG.Text
        trab.dtNascimento = IIf(Me.txtDTNascimento.MaskCompleted = True, CDate(txtDTNascimento.Text), vbNull)
        trab.nuTelefone1 = txtTelefone1.Text
        trab.nuTelefone2 = txtTelefone2.Text
        trab.emEmail = txtEmail.Text
        trab.ctCNH = txtCNH.Text
        trab.dsPNE = txtPNE.Text
        trab.dtCadastro = txtDTCadastro.Text
        trab.idEscolaridade = cmdEscolaridade.SelectedValue
        trab.stPNE = chkPNE.Checked
      
        trab.sxSexo = cmdSexo.SelectedItem.ToString.Substring(0, 1)
        '  trab.pathImgTrabalhador = ArquivoImagem

    End Sub


    Private Sub getTrabalhador()
        idTrabalhador = trab.idTrabalhador
        txtIDTrabalhador.Text = trab.idTrabalhador
        txtNomeTrabalhador.Text = trab.nmCompleto
        txtEnderecoCompleto.Text = trab.edCompleto
        txtBairro.Text = trab.edBairro
        txtCPF.Text = trab.nuCPF
        txtRG.Text = trab.nuRG
        txtDTNascimento.Text = trab.dtNascimento
        txtTelefone1.Text = trab.nuTelefone1
        txtTelefone2.Text = trab.nuTelefone2
        txtEmail.Text = trab.emEmail
        txtCNH.Text = trab.ctCNH
        txtPNE.Text = trab.dsPNE
        txtDTCadastro.Text = trab.dtCadastro
        cmdEscolaridade.SelectedValue = trab.idEscolaridade
        chkPNE.Checked = trab.stPNE
        cmdSexo.SelectedItem = trab.sxSexo
        cxImgTrabalhador.ImageLocation = trab.pathImgTrabalhador

    End Sub

    Private Sub txtNomeTrabalhador_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If trab.verificaSeNomeTrabalhadorExiste(txtNomeTrabalhador.Text) = True Then
            If MsgBox("O Nome do trabalhador informado já existe no banco de dados, caso deseje " & _
                      "continuar usando o mesmo nome para um novo cadastro clique em sim, caso deseje selecionar o trabalhador informado clie em não", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                limpaCurso()
                limpaExperiencia()
                limpaTela(False)
            Else

            End If
        End If

    End Sub

    Private Function validaDadosTrabalhador() As Boolean

        If txtNomeTrabalhador.Text = "".Trim Then
            MsgBox("Preencha o Nome Completo do Trabalhador")
            txtNomeTrabalhador.Focus()
            txtNomeTrabalhador.BackColor = Color.Red
            validaDadosTrabalhador = False
            Exit Function

        End If
        If Not txtDTNascimento.MaskCompleted Then
            MsgBox("Preencha a Data de Nascimento do Trabalhador")
            txtDTNascimento.Focus()
            txtDTNascimento.BackColor = Color.Red
            validaDadosTrabalhador = False
            Exit Function
        End If
        If cmdSexo.Text = "" Then
            MsgBox("Preencha a o Sexo do Trabalhador")
            cmdSexo.Focus()
            cmdSexo.BackColor = Color.Red
            validaDadosTrabalhador = False
            Exit Function
        End If

        Return True

    End Function

    Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click
   
        If validaDadosTrabalhador() Then
            setTrabalhador()
            txtIDTrabalhador.Text = trab.insereTrabalhador()
            MsgBox("Trabalhador cadastrado com exito")
        End If


    End Sub

    Private Sub btnConsultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultar.Click

        'frmConstrabalhador = New frmConsultaTrabalhador


        If frmConstrabalhador.ShowDialog() = Windows.Forms.DialogResult.OK Then
            limpaTela(False)
            limpaExperiencia()
            limpaCurso()

            trab.ConsultaTrabalhadorPorId(frmConstrabalhador.idPesquisaTrabalhador)
            dgvCursoTrabalhador.DataSource = cursoTrab.consultaCursoTrabalhador(frmConstrabalhador.idPesquisaTrabalhador).Tables("dataSet")
            dgvExperiencia.DataSource = exp.consultaExperienciaPorTrabalhador(frmConstrabalhador.idPesquisaTrabalhador).Tables("dataSet")
            getTrabalhador()

        End If

    End Sub
    Private Sub limpaTela(ByVal pMantemCPF As Boolean)
      
        IIf(pMantemCPF = False, txtCPF.Text = String.Empty, "")

        txtIDTrabalhador.Text = ""
        cmdEscolaridade.SelectedValue = 1
        txtNomeTrabalhador.Text = ""
        txtEnderecoCompleto.Text = ""

        txtRG.Text = ""
        txtDTNascimento.Text = ""
        txtTelefone1.Text = ""
        txtTelefone2.Text = ""
        txtEmail.Text = ""
        txtCNH.Text = ""
        txtPNE.Text = ""
        txtDTCadastro.Text = Now.Date
        chkPNE.Checked = 0
        cmdSexo.SelectedItem = ""
        cxImgTrabalhador.ImageLocation = ""
        dgvCursoTrabalhador.DataSource = New DataSet
        dgvExperiencia.DataSource = New DataSet


    End Sub

    Private Sub frmCadastroTrabalhador_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        txtDTCadastro.Text = Now.Date
        cmdEscolaridade.DataSource = esc.consultaEscolaridade.Tables("dataSet")
        cmdEscolaridade.ValueMember = "ID_ESCOLARIDADE"
        cmdEscolaridade.DisplayMember = "DS_ESCOLARIDADE"
        cmdSexo.SelectedItem = "M"
        dgvCursoTrabalhador.AutoGenerateColumns = False
        dgvExperiencia.AutoGenerateColumns = False

    End Sub

    Private Sub alteraTrabalhador()
        setTrabalhador()
        trab.alteraTrabalhador()

        ' Dim bmap As Image = cxImgTrabalhador.Image
        ' bmap.Save(My.Settings.Servidor_Imagens, Imaging.ImageFormat.Jpeg)


        MsgBox("Trabalhador alterado com exito")
    End Sub

    Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click

        alteraTrabalhador()

    End Sub

    Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
        trab.geraRelatorios(txtIDTrabalhador.Text)
        Dim j As New frmRptCurriculum
        j.ShowDialog()

    End Sub

    Private Sub btnConsultaCursos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultaCursos.Click
        Dim j As New frmConsultaCursoEspecializacao("CONSULTA")
        If j.ShowDialog() = Windows.Forms.DialogResult.OK Then
            txtIDCurso.Text = j.idCursoEspecializacao
            txtDsCursoEspecializacao.Text = j.dsCursoEspecializacao
        End If

    End Sub

    Private Sub btnCapturaFoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapturaFoto.Click

        Dim j As New frmCapturaImagem(CInt(txtIDTrabalhador.Text), txtNomeTrabalhador.Text)
        If j.ShowDialog() = Windows.Forms.DialogResult.OK Then
            cxImgTrabalhador.ImageLocation = j.pathImgTrabalhador + j.arquivoFoto
            ArquivoImagem = j.arquivoFoto
            trab.salvaImgTrabalhador(j.arquivoFoto, txtIDTrabalhador.Text)
        End If
    End Sub

    Private Sub btnAmpliaFoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAmpliaFoto.Click

        Dim j As New frmAmpliarImagemTrabalhador(cxImgTrabalhador.ImageLocation)
        j.ShowDialog()

    End Sub

    Private Sub frmCadastroTrabalhador_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

        Me.Dispose()

    End Sub

    Private Sub txtIDCurso_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Try
            curso.idCursoEspecializacao = txtIDCurso.Text
            curso.consultaCursoEspecializacaoPorId()
            txtDsCursoEspecializacao.Text = curso.dsCursoEspecizalizacao
        Catch ex As Exception

        End Try
    End Sub
    Private Sub limpaCurso()
        txtIDCurso.Text = ""
        txtDsCursoEspecializacao.Text = ""
    End Sub

    Private Sub btnInsereCurso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsereCurso.Click
        If txtIDTrabalhador.Text = "" Then
            MsgBox("Cadastre ou Consulte o trabalhador primeiro")
            Exit Sub
        End If
        If txtIDCurso.Text = "" Then
            MsgBox("Selecione um curso para o trabalhador")
            Exit Sub
        End If
        Try
            With cursoTrab
                .idTrabalhador = txtIDTrabalhador.Text
                .idCursoEspecializacao = txtIDCurso.Text
                .insereCursoTrabalhador()
                dgvCursoTrabalhador.DataSource = cursoTrab.consultaCursoTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")
                limpaCurso()
                txtIDCurso.Focus()

            End With
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

    Private Sub btnSalvaFoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvaFoto.Click
        Dim strArquivo As String
        Dim bmap As Image = cxImgTrabalhador.Image
        optSalverImagem.FileName = txtNomeTrabalhador.Text
        optSalverImagem.Title = "Salvar foto de " + txtNomeTrabalhador.Text
        If Me.optSalverImagem.ShowDialog = Windows.Forms.DialogResult.OK Then
            strArquivo = optSalverImagem.FileName
            bmap.Save(strArquivo, Imaging.ImageFormat.Jpeg)
        End If

    End Sub

    Private Sub btnLimparTela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimparTela.Click
        limpaTela(False)
        limpaCurso()
        limpaExperiencia()

    End Sub

    Private Sub btnCargoFuncaoExperiencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCargoFuncaoExperiencia.Click

        Dim j As New frmConsultaCargoFuncao
        If j.ShowDialog() = Windows.Forms.DialogResult.OK Then
            txtIdCargoExperiencia.Text = j.idCagoFuncao
            txtdsCargoExperiencia.Text = j.dsCargoFuncao
        End If

    End Sub

    Private Sub btnInsereExperiencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsereExperiencia.Click
        If txtIDTrabalhador.Text = String.Empty Then
            MsgBox("Cadastre ou consulte o trabalhador primeiro")
            Exit Sub
        End If
        With exp
            .idTrabalhador = txtIDTrabalhador.Text
            .nmEmpresa = txtNmEmpresa.Text
            .dsAtividade = txtAtividadesExperiencia.Text
            .idCargoFuncao = txtIdCargoExperiencia.Text
            .dsPeriodoMes = txtPeriodoMes.Text
            .insereExperienciaProf()
            dgvExperiencia.DataSource = .consultaExperienciaPorTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")
        End With
        limpaExperiencia()
    End Sub

    Private Sub dgvCursoTrabalhador_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvCursoTrabalhador.KeyDown
        If e.KeyCode = Keys.Delete Then
            If MsgBox("Deseja excluir o curso " & dgvCursoTrabalhador.CurrentRow.Cells("O_DS_CURSOESPECIALIZACAO").Value & " ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                cursoTrab.excluiCursoTrabalhador(dgvCursoTrabalhador.CurrentRow.Cells("O_ID_CURSOTRABALHADOR").Value)
                dgvCursoTrabalhador.DataSource = cursoTrab.consultaCursoTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")

            End If
        End If

    End Sub

    Private Sub dgvExperiencia_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvExperiencia.KeyDown

        If e.KeyCode = Keys.Delete Then
            If MsgBox("Deseja excluir a empresa " & dgvExperiencia.CurrentRow.Cells("O_NM_EMPRESA").Value & " ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                exp.excluiExperienciaTrabalhador(dgvExperiencia.CurrentRow.Cells("O_ID_EXPERIENCIA").Value)
                dgvExperiencia.DataSource = exp.consultaExperienciaPorTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")
                limpaExperiencia()
            End If
        End If

    End Sub

    Private Sub limpaExperiencia()

        idExperienciaProfissional = 0
        txtNmEmpresa.Text = ""
        txtIdCargoExperiencia.Text = ""
        txtdsCargoExperiencia.Text = ""
        txtAtividadesExperiencia.Text = ""

    End Sub

    Private Sub dgvExperiencia_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvExperiencia.CellClick

        With dgvExperiencia.CurrentRow
            idExperienciaProfissional = .Cells("O_ID_EXPERIENCIA").Value.ToString
            txtNmEmpresa.Text = .Cells("O_NM_EMPRESA").Value.ToString
            txtIdCargoExperiencia.Text = .Cells("o_id_cargofuncao").Value.ToString
            txtdsCargoExperiencia.Text = .Cells("O_DS_CARGOFUNCAO").Value.ToString
            txtPeriodoMes.Text = .Cells("O_DS_PERIODOMES").Value.ToString
            txtAtividadesExperiencia.Text = .Cells("O_DSATIVIDADES").Value.ToString

        End With

    End Sub

    Private Sub btnAlteraExperienciaTrabalhador_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlteraExperienciaTrabalhador.Click

        With exp
            If txtIDTrabalhador.Text = "" Then
                MsgBox("Cadastre ou consulte o trabalhador primeiro")
                Exit Sub
            End If
            .idTrabalhador = txtIDTrabalhador.Text
            .nmEmpresa = txtNmEmpresa.Text
            .dsAtividade = txtAtividadesExperiencia.Text
            .idCargoFuncao = txtIdCargoExperiencia.Text
            .dsPeriodoMes = txtPeriodoMes.Text
          
            .alteraExperienciaTrabalhador(idExperienciaProfissional)
            dgvExperiencia.DataSource = .consultaExperienciaPorTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")

        End With

    End Sub

    Private Sub btnExcluiExperienciaTrabalhador_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluiExperienciaTrabalhador.Click
        If MsgBox("Deseja excluir a empresa " & txtNmEmpresa.Text & " ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            exp.excluiExperienciaTrabalhador(idExperienciaProfissional)
            dgvExperiencia.DataSource = exp.consultaExperienciaPorTrabalhador(txtIDTrabalhador.Text).Tables("dataSet")
            limpaExperiencia()
        End If
    End Sub

    Private Sub txtCPF_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCPF.Leave

        If txtCPF.Text = String.Empty Then
            txtCPF.BackColor = Color.Red
            Exit Sub
        Else
            If trab.consultaTrabalhadorPorCPF(txtCPF.Text) = True Then
                limpaTela(False)
                limpaExperiencia()
                limpaCurso()
                getTrabalhador()
                dgvCursoTrabalhador.DataSource = cursoTrab.consultaCursoTrabalhador(idTrabalhador).Tables("dataSet")
                dgvExperiencia.DataSource = exp.consultaExperienciaPorTrabalhador(idTrabalhador).Tables("dataSet")
            Else
                If MsgBox("CPF do trabalhador não cadastrado não sistema, deseja cadastrar outro trabalhador?", MsgBoxStyle.YesNo, "SISPAT - SRTE/TO") = MsgBoxResult.Yes Then
                    limpaTela(True)
                    limpaExperiencia()
                    limpaCurso()
                End If

            End If
        End If

        mudaCorTextBoxAoSairDoFoco(sender, e)

    End Sub

    Private Sub mudaCorTextBoxAoReceberFoco(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelefone2.Enter, txtTelefone1.Enter, txtRG.Enter, txtPNE.Enter, txtNomeTrabalhador.Enter, txtEnderecoCompleto.Enter, txtEmail.Enter, txtDTNascimento.Enter, txtDTCadastro.Enter, txtCPF.Enter, txtCNH.Enter, cmdSexo.Enter, cmdEscolaridade.Enter, chkPNE.Enter, txtIDCurso.Enter, txtDsCursoEspecializacao.Enter, txtNmEmpresa.Enter, txtIdCargoExperiencia.Enter, txtdsCargoExperiencia.Enter, txtAtividadesExperiencia.Enter, txtBairro.Enter, txtPeriodoMes.Enter

        Dim c As Control = DirectCast(sender, Control)
        c.BackColor = Color.LightBlue

    End Sub

    Private Sub mudaCorTextBoxAoSairDoFoco(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelefone2.Leave, txtTelefone1.Leave, txtRG.Leave, txtPNE.Leave, txtNomeTrabalhador.Leave, txtNmEmpresa.Leave, txtIDCurso.Leave, txtIdCargoExperiencia.Leave, txtEnderecoCompleto.Leave, txtEmail.Leave, txtDTNascimento.Leave, txtDTCadastro.Leave, txtDsCursoEspecializacao.Leave, txtdsCargoExperiencia.Leave, txtCNH.Leave, txtAtividadesExperiencia.Leave, cmdSexo.Leave, cmdEscolaridade.Leave, chkPNE.Leave, txtPeriodoMes.Leave, txtBairro.Leave

        Dim c As Control = DirectCast(sender, Control)
        c.BackColor = Color.White

    End Sub


    Private Sub btnEncaminhamento_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncaminhamento.Click
        If txtIDTrabalhador.Text = "" Then
            MsgBox("Cadastre ou consulte um trabalhador primeiro")
            Exit Sub
        End If
        Dim j As New frmCadastroEncaminhamento("enc", txtIDTrabalhador.Text)
        j.Show()
    End Sub
End Class